<template>
  <div id="mPdf" class="mobile-pdf"></div>
</template>

<script setup>
import Pdfh5 from "pdfh5";
import { onMounted } from "vue";
const props = defineProps({
  url: {
    type: String,
    default: "",
  },
  pdfBlob: {
    type: Object,
    default: null,
  },
});

const scale = ref(0.8);
// function initPdf(blob) {
//   if (!blob) return;

//   const reader = new FileReader();
//   reader.onload = function () {
//     const arrayBuffer = reader.result;
//     const pdfh5Instance = new Pdfh5("#mPdf", {
//       data: arrayBuffer,
//       scale: scale.value,
//     });

//     pdfh5Instance.on("ready", function (cb) {
//       console.log(cb);
//     });

//     pdfh5Instance.on("complete", function () {});
//     pdfh5Instance.on("zoom", function (cb) {
//       console.log("zoom", cb);
//       // alert(cb)
//       scale.value = cb;
//     });
//   };

//   reader.readAsArrayBuffer(blob);
// }

function initPdf(url) {
  if (!url) return;

  // 创建 pdfh5 实例，加载 PDF 文件
  const pdfh5Instance = new Pdfh5("#mPdf", {
    pdfurl: url, // 通过 URL 加载 PDF
    renderType: "svg",
  });

  // // 在 ready 回调中设置最小和最大缩放值
  // pdfh5Instance.on("ready", function () {
  //   // 设置最大和最小缩放比例
  //   pdfh5Instance.minZoom = 0.5; // 最小缩放比例为 0.5
  //   pdfh5Instance.maxZoom = 3; // 最大缩放比例为 3
  //   pdfh5Instance.zoomTo(scale.value); // 设置初始缩放

  //   console.log("PDF 准备完毕，页数：" + this.totalNum);
  // });

  // pdfh5Instance.on("zoom", function (zoomValue) {
  //   scale.value = zoomValue; // 更新当前缩放比例
  // });
}

// watch(
//   () => props.pdfBlob,
//   (newVal) => {
//     if (newVal) {
//       initPdf(newVal);
//     }
//   },
//   { immediate: true }
// );
watch(
  () => props.url,
  (newUrl) => {
    if (newUrl) {
      initPdf(newUrl); // 当 url 变化时重新初始化 PDF
    }
  },
  { immediate: true } // 初次渲染时也加载
);
</script>

<style lang="scss" scoped>
.mobile-pdf {
  width: 100%;
  height: 100%;
  background: #fff;
  ::v-deep(.viewerContainer) {
    width: 100%;
    // position: relative;
    height: calc(100% - 20px);
  }
}
</style>
